1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package com.google.common.collect.testing.google;
16
17 import static com.google.common.collect.testing.features.CollectionSize.ZERO;
18 import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS;
19 import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES;
20
21 import com.google.common.annotations.GwtCompatible;
22 import com.google.common.collect.Multimap;
23 import com.google.common.collect.testing.Helpers;
24 import com.google.common.collect.testing.features.CollectionSize;
25 import com.google.common.collect.testing.features.MapFeature;
26 import com.google.common.testing.EqualsTester;
27
28 import java.util.ArrayList;
29 import java.util.List;
30 import java.util.Map.Entry;
31
32
33
34
35
36
37 @GwtCompatible
38 public class MultimapEqualsTester<K, V> extends AbstractMultimapTester<K, V, Multimap<K, V>> {
39 public void testEqualsTrue() {
40 new EqualsTester()
41 .addEqualityGroup(multimap(), getSubjectGenerator().create(getSampleElements().toArray()))
42 .testEquals();
43 }
44
45 public void testEqualsFalse() {
46 List<Entry<K, V>> targetEntries = new ArrayList<Entry<K, V>>(getSampleElements());
47 targetEntries.add(Helpers.mapEntry(sampleKeys().e0, sampleValues().e3));
48 new EqualsTester()
49 .addEqualityGroup(multimap())
50 .addEqualityGroup(getSubjectGenerator().create(targetEntries.toArray()))
51 .testEquals();
52 }
53
54 @CollectionSize.Require(absent = ZERO)
55 @MapFeature.Require(ALLOWS_NULL_KEYS)
56 public void testEqualsMultimapWithNullKey() {
57 Multimap<K, V> original = multimap();
58 initMultimapWithNullKey();
59 Multimap<K, V> withNull = multimap();
60 new EqualsTester()
61 .addEqualityGroup(original)
62 .addEqualityGroup(withNull, getSubjectGenerator().create(createArrayWithNullKey()))
63 .testEquals();
64 }
65
66 @CollectionSize.Require(absent = ZERO)
67 @MapFeature.Require(ALLOWS_NULL_VALUES)
68 public void testEqualsMultimapWithNullValue() {
69 Multimap<K, V> original = multimap();
70 initMultimapWithNullValue();
71 Multimap<K, V> withNull = multimap();
72 new EqualsTester()
73 .addEqualityGroup(original)
74 .addEqualityGroup(withNull, getSubjectGenerator().create(createArrayWithNullValue()))
75 .testEquals();
76 }
77
78 @CollectionSize.Require(absent = ZERO)
79 public void testNotEqualsEmpty() {
80 new EqualsTester()
81 .addEqualityGroup(multimap())
82 .addEqualityGroup(getSubjectGenerator().create())
83 .testEquals();
84 }
85
86 public void testHashCodeMatchesAsMap() {
87 assertEquals(multimap().asMap().hashCode(), multimap().hashCode());
88 }
89 }